import java.util.*;

class UnusualAdd {
    public int addAB(int A, int B) {
        // write code here
        return Math.addExact(A, B);
    }
}
public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        System.out.println(res(n, m));
    }

    private static int res(int n, int m) {
        if (n == 0 || m == 0) {
            return 1;
        }
        return res(n-1, m) + res(n, m-1);
    }

    public static void main2(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        for (int i = Math.max(a, b); i <= a*b; i++) {
            if (i%a == 0 && i%b == 0) {
                System.out.println(i);
                break;
            }
        }
    }
    public static String comparatorByDic(List<String> list) {
        Queue<String> queue = new PriorityQueue<>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        for (String s : list) {
            queue.offer(s);
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < list.size(); i++) {
            stringBuilder.append(queue.poll());
            stringBuilder.append(" ");
        }
        return stringBuilder.toString();
    }
    public static String comparatorByLen(List<String> list) {
        Queue<String> queue = new PriorityQueue<>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length();
            }
        });
        for (String s : list) {
            queue.offer(s);
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < list.size(); i++) {
            stringBuilder.append(queue.poll());
            stringBuilder.append(" ");
        }
        return stringBuilder.toString();
    }
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        List<String> list = new LinkedList<>();
        for (int i = 0; i < n; i++) {
            list.add(in.next());
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (String s : list) {
            stringBuilder.append(s);
            stringBuilder.append(" ");
        }
        String s1 = stringBuilder.toString();
        String byDic = comparatorByDic(list);
        String byLen = comparatorByLen(list);
        if (byDic.equals(byLen) && byDic.equals(s1)) {
            System.out.println("both");
        } else if (byDic.equals(s1)) {
            System.out.println("lexicographically");
        } else if (s1.equals(byLen)) {
            System.out.println("lengths");
        } else {
            System.out.println("none");
        }
    }

}